This invention relates to the art of digital video players, such as video tape recorders, digital video disks (DVD), and the like, and more particularly, to digital video players that provide so-called trick play features when the video information to be played is digitally encoded using inter-frame encoding.
Reverse jog play is a feature of video players in which the video player plays the video in a manner that displays consecutive single frames of video in reverse order. When the video information to be played by the player is a digital signal, such as is played by digital video tape recorders or digital video disk (DVD) players, often the digital signal was developed by using an inter-frame encoding system, such as MPEG 1, MPEG 2, or H.263.
A result of using such inter-frame encoding is that there is a problem in the art of digital video players with respect to reverse jog play, namely, that to achieve reverse jog play it is necessary to decode all the frames of the video signal from a base frame, which is typically intra-frame encoded, up until the frame to be currently displayed using reverse jog play. The necessity to do this decoding adds substantially to the delay before the first frame can be displayed after initiation of reverse jog play, and a similar delay is encountered for each of the subsequent frames displayed in reverse jog play. Also, while performing this decoding for reverse jog play it is necessary to suppress the display of each of the frames that are decoded from the base frame until reaching the frame that is to be currently displayed, thus adding complexity to the decoder.
The prior art reverse-jog-play problem is especially acute for video tape recorders because they lack the ability to randomly access the video frames. As a result, the tape must first be searched to accurately locate the base frame. Thereafter, the tape must be constantly rewound to the base frame and advanced through the intervening frames up to the frame to be displayed.
One prior art system for performing reverse jog play is encode the entire video sequence in reverse order in addition to, and associated with, a stored version of the video sequence in the forward order. When reverse jog play is required, forward jog play is invoked but using the reversed video sequence. However, disadvantageously, this technique doubles the storage requirement for the video signal and it may also increase the hardware required for playing the video signal.
I have recognized that reverse jog play can be provided quickly and simply in a player that plays a recorded stream of inter-frame encoded digital video by storing, in intra-coded frame format, frames that were previously decoded by the player and are in the vicinity of the frame currently being displayed. The intra-frame encoded versions of the decoded frames may be digitally stored in random access memory (RAM) or in some other storage medium that is easily accessible.
In accordance with one aspect of the invention, the number of previously decoded frames which are stored is selected at the discretion of the implementor, c.g., 30 frames, the number being essentially independent of the frame structure of the video stream. In accordance with another embodiment of the invention, the player stores each decoded frame from a predetermined, e.g., the most recently or next to most recently decoded, intra-coded frame (I-frame) until the current frame. Thus, the number of useable stored frames is a function of the video stream structure, the design choices of the user, and the current frame being displayed. Optionally, when using reverse jog play, an additional series of frames is decoded and stored upon reaching a point near the I-frame toward which the display is moving.
Advantageously, by using I-frame format for storing the previously decoded frames for possible use in reverse jog play, the storage requirement for such frames is reduced while conventional available components may be used to implement the system.